def bucket_sort(arr,bucketnum):
    # bucketnum:桶数量
    minvalue,maxvalue=min(arr),max(arr)
    # 桶的大小：每个桶的元素范围
    bucketsize=(maxvalue-minvalue+1)//bucketnum

    # 创建桶  [[], [], [], [], [], []]
    res=[[] for _ in range(bucketnum+1)]

    # 把所有元素放到对应桶中
    for x in arr:
        # 元素x放在第几个桶
        idx=(x-minvalue)// bucketsize
        res[idx].append(x)


    ans=[]
    # 每个桶进行排序
    for res_x in res:
        res_x.sort()
        # 列表的连接  print([1,2,3]+[4,5,6])
        ans+=res_x
    return ans

n=int(input())
a=list(map(int ,input().split()))
a=bucket_sort(a,min(10000,n))
print(" ".join(map(str,a)))